#ifndef __EFFECT_FACTORY_H__
#define __EFFECT_FACTORY_H__

#pragma once

#include <Singleton.h>
#include <MemoryPoolFactory.h>

using namespace util;


class BaseEffect;
class PeriodicDamageEffect;


class EffectFactory : public Singleton<EffectFactory>
{
public:
	EffectFactory();
	virtual ~EffectFactory();

	VOID			Init( DWORD dwMaxPoolSize );
	VOID			Release();
	BaseEffect*		AllocEffect( eFIELDEFFECT_TYPE eEffectType );
	VOID			FreeEffect( BaseEffect* pEffect );

private:
	CMemoryPoolFactory<PeriodicDamageEffect> *	m_pPeriodicDamagePool;
};

#endif
